New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@gasket/plugin-dynamic-plugins

Package Overview
Dependencies
Maintainers
0
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@gasket/plugin-dynamic-plugins

Gasket plugin for dynamically adding plugins to Gasket

7.3.2
latest
Source
npm
Version published
Weekly downloads
45
-57.55%
Maintainers
0
Weekly downloads
 
Created
Source

@gasket/plugin-dynamic-plugins

Gasket plugin for dynamically adding plugins to Gasket

Installation

npm i @gasket/plugin-dynamic-plugins

Update your gasket file plugin configuration:

// gasket.js

+ import pluginDynamicPlugins from '@gasket/plugin-dynamic-plugins';

 export default makeGasket({
  plugins: [
+   pluginDynamicPlugins
  ]
});

Usage

This plugin gives you the option to dynamically add plugins to Gasket after the core Gasket instance has been created.

This can be useful when you want to add plugins to Gasket for specific environments or commands.

For example, if you have plugins that are really only needed for development, such as (@gasket/plugin-docs, @gasket/plugin-docusarus), you can dynamically load them into Gasket only when doing development locally through with plugin.

You could then add plugins designated only for development to you devDependencies in your package.json file.

Configuration

To specify which plugins to load dynamically, in your gasket set the dynamicPlugins prop to an array of strings containing the plugin names you want to add.

// gasket.js

export default makeGasket({
+  dynamicPlugins: [
+    '@gasket/plugin-foo', 
+    '@gasket/plugin-bar',
+    './custom-plugin.js'
+ ]
});

Conditional configuration

You can use sub-configurations by environments or commands to determine which plugins to load dynamically.

For example, if you wanted to load docs-related plugins only when using the docs commands, with a package script like:

  "docs": "node gasket.js docs"

In your gasket file, you would then configure the plugins to load dynamically when the docs command is used.

makeGasket({
  // ...
  commands: {
    'docs': {
      dynamicPlugins: [
        '@gasket/plugin-docs',
        '@gasket/plugin-docusaurus',
        '@gasket/plugin-metadata'
      ]
    }
  }
})

Waiting for dynamic plugins

Basic gasket configuration is synchronous, but dynamic plugins will be loaded asynchronously.

If you want to wait until dynamic plugins have been loaded into the Gasket instance before running app code or actions, you can do so by checking if the isReady property on the Gasket instance has been resolved.

export default {
  name: 'example-plugin',
  actions: {
    async myAction(gasket) {
+      await gasket.isReady;
      // do something async after dynamic plugins have been loaded
    }
  }
};

How it works

This plugin hooks the prepare lifecycle to add dynamic plugins to the Gasket instance.

In the prepare hook, plugins specified in the dynamicPlugins configuration are registered with the Gasket instance. The init, configure, and prepare lifecycles are then executed exclusively for the newly added dynamic plugins.

License

MIT

Keywords

dynamic

FAQs

Package last updated on 13 Mar 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts